﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Threading;
using System.Threading;


namespace uploadTest1
{
    // ****************************************************************************
    // <author>Sacha Barber</author>
    // <email>sacha.barber@gmail.com</email>
    // <date>07.01.2010</date>
    // <project>SLMiniMVVM</project>
    // <web>sachabarber.net</web>
    // ****************************************************************************
    // <credits>Based on the fine work of Daniel Vaughan and a discussion on the WPF
    // Disciples group one day. Daniel can be contacted via his blog
    // http://danielvaughan.orpius.com/
    // </credits>
    // ****************************************************************************
    /// <summary>
    /// Interface that SynchronizationContexts should implement
    /// </summary>
    public interface ISynchronizationContext
    {
        void Initialize(Dispatcher dispatcher);
        void InvokeAsynchronously(SendOrPostCallback callback, object state);
        void InvokeAsynchronously(Action action);
        void InvokeSynchronously(SendOrPostCallback callback, object state);
        void InvokeSynchronously(Action action);
        bool InvokeRequired { get; }

    }
}
